// Font structures for newer STM_GFX (1.1 and later).
// Example fonts are included in 'Fonts' directory.
// To use a font in your Arduino sketch, #include the corresponding .h
// file and pass address of GFXfont struct to setFont().  Pass NULL to
// revert to 'classic' fixed-space bitmap font.

#ifndef _GFXFONT_H_
#define _GFXFONT_H_

/// 按照GLYPH存储的字体数据
typedef struct {
  uint16_t bitmapOffset; ///< 指向的指针GFXfont->bitmap
  uint8_t width;         ///< 位图尺寸（像素）
  uint8_t height;        ///< 位图尺寸（像素）
  uint8_t xAdvance;      ///< 到光标前进的距离（x轴）
  int8_t xOffset;        ///< X 从光标位置到UL角的距离
  int8_t yOffset;        ///< Y 从光标位置到UL角的距离
} GFXglyph;

/// 为FONT整体存储的数据
typedef struct {
  uint8_t *bitmap;  ///< 字形位图，串联
  GFXglyph *glyph;  ///< 字形阵列
  uint16_t *Chinese_;
  uint16_t first;   ///< ASCII数据块（第一个字符）
  uint16_t last;    ///< ASCII扩展数据块（最后一个字符）
  uint8_t yAdvance; ///< 宽度
} GFXfont;

#endif // _GFXFONT_H_
